System noise and nonlinearity are problems present in many signal processing systems. For example, in a wireless receiver system, the received signal may interact with other unwanted signals such as local oscillator (LO) signal harmonics, system clock harmonics, power supply hum, or other leakage signals. These unwanted signals are sometimes referred to as exogenous signals since they are not anticipated signals in the receiver's signal path. The exogenous signals can lead to distortion, including intermodulation distortion (also known as intermods). Additionally, the receiver circuitry often has nonlinearities that further distort the received signal. For example, the analog to digital converter (ADC) typically has some nonlinear characteristics that can cause distortion.
A typical way of correcting system distortion is by applying a training signal with known characteristics to the system to determine the transfer function for system distortion, and then adjust a filter to provide an inverse function that cancels out the distortion. This training technique requires that the ideal, undistorted training signal be available during the training period. The technique is sometimes impractical since adding the training step to the manufacturing process will increase the cost of the device. Further, system nonlinearities may vary due to factors such as variations in signal paths, power supply, temperature, signal dynamics, Nyquist zone of the signal, and/or aging of components. It is, however, often impractical to re-train the device since the undistorted training signal may no longer be available. It would be desirable, therefore, to be able to correct signal distortion more easily.